Python Pandas 直方图对数刻度
全部标签 我正在使用matplotlib的imshow()函数来显示pandas.DataFrame。我想从DataFrame.index和DataFrame.columns列表中绘制x轴和y轴的标签和刻度,但我不知道该怎么做。假设data是一个pandas.DataFrame:>>>printdataIndex:201entries,1901to2101Datacolumns:jan201non-nullvaluesfeb201non-nullvaluesmar201non-nullvaluesapr201non-nullvaluesmay201non-nullvaluesjun201non-
我想使用matlibplot轴绘制2个子图。由于这两个子图具有相同的ylabel和刻度,我想关闭第二个子图的刻度和标记。以下是我的简短脚本:importmatplotlib.pyplotaspltax1=plt.axes([0.1,0.1,0.4,0.8])ax1.plot(X1,Y1)ax2=plt.axes([0.5,0.1,0.4,0.8])ax2.plot(X2,Y2)顺便说一句,X轴标记重叠,不确定是否有一个好的解决方案。(一个解决方案可能是使每个子图的最后一个标记不可见,除了最后一个,但不确定如何)。谢谢! 最佳答案 快
如何在Python中创建一对图,如下所示:但用热图代替点(或代替“十六进制图”图)?有可能改为显示对数热图计数将是一个额外的好处。(对角线上的直方图会非常好。)“热图”是指计数的二维直方图,显示为Seaborn's或Wikipedia's热图:使用Pandas、seaborn或matplotlib会很棒(也许是plot.ly)。我尝试了以下天真的变体,但无济于事:pairplot=sns.PairGrid(data)#sns=seabornpairplot.map_offdiag(sns.kdeplot)#Off-diagnoalheatmapwantedinstead!pairplo
我有一个数据框如下。我需要在三个条件之间对此进行方差分析。数据框看起来像:data0=pd.DataFrame({'Names':['CTA15','CTA15','AC007','AC007','AC007','AC007'],'value':[22,22,2,2,2,5],'condition':['NON','NON','YES','YES','RE','RE']})我需要在YES和NON、NON和RE以及YES和RE之间进行ANOVA测试,条件来自名称的条件。我知道我可以这样做,NON=df.query('condition=="NON"andNames=="CTA15"')n
假设我有几个直方图,每个直方图在不同bin位置(在实轴上)都有计数。例如defgenerate_random_histogram():#Randombinlocationsbetween0and100bin_locations=np.random.rand(10,)*100bin_locations.sort()#Randomcountsbetween0and50onthoselocationsbin_counts=np.random.randint(50,size=len(bin_locations))return{'loc':bin_locations,'count':bin_co
我经常遇到并从复杂的网络中制作长尾度分布/直方图,如下图所示。从许多观察来看,它们使这些尾部的重端非常重且拥挤:但是,我读过的许多出版物都有更清晰的度数分布,在分布的末端没有这种团block,而且观察结果分布更均匀。!如何使用NetworkX和matplotlib制作这样的图表? 最佳答案 使用logbinning(seealso)。以下代码采用表示度值直方图的Counter对象并对分布进行log-bin以生成更稀疏和更平滑的分布。importnumpyasnpdefdrop_zeros(a_list):return[iforiin
有没有办法告诉matplotlib对直方图进行“归一化”,使其面积等于指定值(1除外)?选项“normed=0”在n,bins,patches=plt.hist(x,50,normed=0,histtype='stepfilled')只是将其带回频率分布。 最佳答案 只需计算它并将其归一化为您想要的任何值,然后使用bar绘制直方图。附带说明一下,这会将所有条形图的区域归一化为normed_value。原始总和将不是normed_value(如果您愿意,很容易做到这种情况)。例如importnumpyasnpimportmatplot
我有一组数据,想绘制它的直方图。我需要容器具有相同的大小,我的意思是它们必须包含相同数量的对象,而不是更常见的(numpy.histogram)问题等距垃圾箱。这自然会以箱宽度为代价,箱宽度可以-通常会-不同。我将指定所需bin的数量和数据集,作为返回获得bin边缘。Example:data=numpy.array([1.,1.2,1.3,2.0,2.1,2.12])bins_edges=somefunc(data,nbins=3)print(bins_edges)>>[1.,1.3,2.1,2.12]所以bin都包含2个点,但它们的宽度(0.3、0.8、0.02)不同。有两个限制:-
例如,我创建了一个如下所示的数据框:datepricetickervolume02018-01-011.323AI200012018-01-021.525AI150022018-01-031.045AI50032018-01-012.110BOC320142018-01-022.150BOC520052018-01-032.810BOC198062018-01-015.199CAT200072018-01-024.980CAT45082018-01-034.990CAT3000所以有3只股票,跨越三天。我想计算2018-01-01和2018-01-03之间每只股票的每日对数yield。
我有这段代码可以生成直方图,识别三种类型的字段;“低”、“中”和“高”:importpylabaspltimportpandasaspddf=pd.read_csv('April2017NEW.csv',index_col=1)df1=df.loc['OutputEnergy,(Wh/h)']#chooseindexvalueandAveragedf1['Average']=df1.mean(axis=1)N,bins,patches=plt.hist(df1['Average'],30)cmap=plt.get_cmap('jet')low=cmap(0.5)medium=cmap(